1. Field of the Invention
The present invention relates to a device and a method for modulation, a program, and a recording medium, and particularly to a device and a method for modulation, a program, and a recording medium that can provide reproduction compatibility to another device.
2. Description of the Related Art
When data is to be transmitted to a predetermined transmission line or to be recorded onto a recording medium such for example as a magnetic disk, an optical disk, or a magneto-optical disk, the data is modulated to become suitable for the transmission line or the recording medium. Known as one of methods of such modulation is a block code. The block code blocks a data string into units (hereinafter referred to as data words) each including m×i bits, and converts the data words to codewords each including n×i bits according to an appropriate code rule. When i=1, this code is fixed length code. When a plurality of values can be selected for i, that is, a predetermined i in a range of one to imax (a maximum of i), and then conversion is performed, the code is variable length code. The block-coded code is expressed as variable length code (d, k; m, n; r).
In this code, i is referred to as a constraint length, and imax is r (maximum constraint length). d denotes for example a minimum number of consecutive “0”s inserted between successive “1”s, that is, a minimum run of “0”s. k denotes for example a maximum number of consecutive “0”s inserted between successive “1”s, that is, a maximum run of “0”s.
When codewords obtained as described above are to be recorded onto an optical disk, a magneto-optical disk or the like, in the case of a compact disk (CD) or a Mini-Disc (MD)®, for example, a variable length code string is subjected to NRZI (Non Return to Zero Inverted) modulation, in which inversion is performed for “1” and inversion is not performed for “0”, and recording is performed on the basis of the NRZI-modulated variable length code (hereinafter referred to as a recording waveform string). This recording is referred to as mark edge recording. On the other hand, in the case of an ISO-standard 3.5-inch magneto-optical disk with a capacity of 230 MB or the like, a code string resulting from recording modulation is recorded as it is without being subjected to NRZI modulation. This recording is referred to as mark position recording. The mark edge recording is often used for current recording media, which have been increased in recording density.
Letting Tmin be a minimum inversion interval of the recording waveform string and Tmax be a maximum inversion interval of the recording waveform string, a longer minimum inversion interval Tmin, or a larger minimum run d is preferred to perform high density recording in a linear velocity direction. From a viewpoint of clock reproduction, a shorter maximum inversion interval Tmax, or a smaller maximum run k is preferable. When overwriting characteristics are considered, it is preferable that Tmax/Tmin be smaller. Further, it is important from a viewpoint of jitter and S/N that a detection window width Tw=m/n be large, for example. Thus, various modulating methods have been proposed in light of conditions of media, and put to practical use.
Specific modulating systems proposed or actually used for optical disks, magnetic disks, magneto-optical disks, and the like are as follows. An EFM code (also denoted as (2, 10; 8, 17; 1)) used for CDs and MDs, an 8-16 code (also denoted as (2, 10; 1, 2; 1)) used for DVDs (Digital Versatile Disks), and RLL(2, 7) (also denoted as (2, 7; m, n; r)) used for PDs (120 mm and a capacity of 650 MB) are RLL codes with a minimum run d=2. RLL(1, 7) (also denoted as (1, 7; 2, 3; r)) used for MD-DATA2 or an ISO-standard 3.5-inch MO (a capacity of 640 MB) is an RLL code with a minimum run d=1. In addition, recording and reproduction disk devices for optical disks, magneto-optical disks and the like having high recording densities, which are currently being developed and studied, often use an RLL code (Run Length Limited code) with a minimum run d=1, in which the size of a smallest mark and conversion efficiency are balanced.
A modulation table of the variable length RLL (1, 7) code is for example as follows.
TABLE 1RLL(1, 7): (d, k; m, n; r) = (1, 7; 2, 3; 2)Data PatternCode Patterni = 11100x100100110xi = 20011000 00x0010000 0100001100 00x0000100 010
A symbol x in the modulation table is “1” when a following channel bit is “0”, and is “0” when the following channel bit is “1”. The maximum constraint length r is two.
Parameters of variable length RLL (1, 7) are (1, 7; 2, 3; 2). Letting T be a bit interval of the recording waveform string, the minimum inversion interval Tmin expressed by (d+1)T is 2 (=1+1) T. Letting Tdata be a bit interval of the data string, the minimum inversion interval Tmin expressed by (m/n)×2 is 1.33 (=(⅔)×2) Tdata. The maximum inversion interval Tmax expressed by (k+1)T is Tmax=8 (=7+1) T (=(m/n)×8 Tdata=(⅔)×8 Tdata=5.33 Tdata). The detection window width Tw is expressed by (m/n)×Tdata. The value of the detection window width Tw is Tw=0.67 (=⅔) Tdata.
In a channel bit string resulting from modulation in accordance with the RLL (1, 7) of Table 1, 2T, which is Tmin, occurs most frequently, and the frequencies of occurrences of 3T, 4T, 5T, 6T . . . are decreased in that order. Repetition of 2T as the minimum run (Tmin), that is, frequent occurrence of edge information in short cycles is often advantageous for clock reproduction.
However, in recording and reproduction of an optical disk, for example, as recording linear density is further increased, an error tends to occur at parts of the minimum run. This is because in disk reproduction, a waveform output of the minimum run is smaller than waveform outputs of other runs and is thus easily affected by for example a defocus and a tangential tilt. In addition, recording and reproduction of successive minimum marks at a high recording linear density is easily affected by disturbances such as noise and the like. Thus, a data reproduction error tends to occur. As a pattern of the data reproduction error at this time, an error in which an entire length of successive smallest marks from a first edge to a last edge is shifted can occur. That is, the length of a bit error that occurs extends from a start to an end of the section of successive occurrences of the minimum run. Therefore a problem of a long error propagation occurs.
For stabilization in recording and reproducing data at a high linear density, limiting successive occurrences of the minimum run is effective.
When data is to be recorded onto a recording medium or the data is to be transmitted, coding modulation suitable for the recording medium or a transmission line is performed. When modulation codes include a low-frequency component, for example, variations in various error signals for a tracking error and the like in servo control of the disk device tend to occur, or jitter tends to occur. It is therefore desirable to suppress the low-frequency component of the modulation codes as much as possible.
As a method for suppressing the low-frequency component, there is DSV (Digital Sum Value) control. When a channel bit string is subjected to NRZI modulation (that is, level coding) to be converted into a recording code string, and codes are added up with “1” in the bit string (data symbols) taken as a code +1 and “0” in the bit string taken as a code −1, DSV represents a total sum of the added-up codes. The DSV serves as an indicator of the low-frequency component of the recording code string. Decreasing the absolute values of positive and negative fluctuations in the DSV, that is, performing DSV control eliminates a direct-current component of the recording code string and suppresses the low-frequency component.
DSV control is not applied to modulation codes generated according to the variable length RLL (1, 7) table shown as Table 1. DSV control in such a case is achieved by performing a DSV calculation at predetermined intervals in a coded string (channel bit string) after modulation and inserting predetermined DSV control bits in the coded string (channel bit string) (Japanese Patent Laid-Open No. Hei 6-197024 referred to as Patent Document 1 hereinafter, for example).
The number of DSV control bits to be inserted in the channel bit string is determined by the minimum run d. When d=1, and when DSV control bits are to be inserted at an arbitrary position of codewords in such a manner as to keep the minimum run, two (=d+1) channel bits are necessary. When DSV control bits are to be inserted at an arbitrary position of codewords in such a manner as to keep the maximum run, four (=2×(d+1)) channel bits are necessary. When DSV control is to be performed with fewer channel bits than these channel bits, DSV control may not be achieved, depending on a preceding pattern and a succeeding pattern between which the channel bits are interposed.
In the RLL(1, 7) code with (d, k; m, n)=(1, 7; 2, 3), when the above DSV control bits are converted into data with the conversion ratio,
4 channel bits×⅔=8/3=about 2.67 data pieces (2.67 Tdata)
The DSV control bits are basically redundant bits. Thus, from a viewpoint of efficiency of code conversion, it is desirable to reduce the number of DSV control bits as much as possible.
Further, it is desirable not to allow the minimum run d and the maximum run k to be changed by inserted DSV control bits. This is because a change in (d, k) affects recording and reproduction characteristics.
In an actual RLL code, however, the minimum run have to be kept because the minimum run greatly affects recording and reproduction characteristics, but the maximum run is not necessarily kept. In some cases, there is a format in which a pattern that breaks the maximum run is used as a synchronizing pattern. For example, while a maximum run in the 8-16 code of DVD (Digital Versatile Disk) is 11 T, 14 T exceeding the maximum run is given in the part of a synchronizing pattern to enhance a capability of detecting the synchronizing pattern.
On the basis of the above, the present inventor et al. have previously proposed a 1,7PP code of Table 2 as a modulation system with (d, k)=(1, 7) which system is ready for high recording densities (see Japanese Patent Laid-Open No. Hei 11-346154 referred to as Patent Document 2 hereinafter, for example).
TABLE 21,7PP: (d, k; m, n; r) = (1, 7; 2, 3; 4)Data PatternCode Patterni = 111*0*1000101010i = 20011010 1000010010 0000001000 100i = 300001100 100 100000010000 100 000000001010 100 100000000010 100 000i = 3110111001 000 000 (next 010)i = 400001000000 100 100 10000000000010 100 100 100if xx1 then *0* = 000xx0 then *0* = 101Sync & Termination#01 001 000 000 001 000 000 001 (24 channel bits)#=0 not terminate case#=1 terminate case
Termination Table000000000010 100110111001 000 000 (next 010):When next channel bits are ‘010’,convert ‘11 01 11’ to ‘001 000 000’.
The modulation table of Table 2 includes, as conversion patterns, basic patterns without which conversion processing may not be carried out (conversion patterns composed of data patterns (11) to (000000)), substitution patterns without which conversion processing can be carried out, but with which more effective conversion processing can be carried out (conversion patterns composed of data patterns (110111), (00001000), and (00000000)), and terminating patterns for terminating a data string at an arbitrary position (conversion patterns composed of data patterns (00) and (0000)).
In addition, Table 2 includes an indeterminate code (a code denoted by a symbol *) as an element of a basic pattern, with a minimum run d=1 and a maximum run k=7. The indeterminate code is set to “0” or “1” so as to keep the minimum run d and the maximum run k regardless of an immediately preceding codeword and an immediately succeeding codeword. Specifically, in Table 2, when a two-piece data pattern to be converted is (11), a code pattern “000” or “101” is selected depending on an immediately preceding codeword string (channel bit string), and the data pattern to be converted is converted to one of the code patterns “000” and “101”. For example, when one channel bit of the immediately preceding codeword string is “1”, the data pattern (11) is converted to the code pattern “000” to keep the minimum run d. When one channel bit of the immediately preceding codeword string is “0”, the data pattern (11) is converted to the code pattern “101” to keep the maximum run k.
The basic patterns of the modulation table of Table 2 have a variable length structure. That is, the number of basic patterns at a constraint length i=1 is three (the three patterns *0*, 001, and 010), which is smaller than a required number of four (2^m=2^2=4). As a result, in converting data strings, there are data strings that may not be converted with a constraint length i=1. After all, in order to convert all data strings in Table 2 (for Table 2 to hold as a modulation table), it is necessary to refer to basic patterns up to a constraint length i=3.
In addition, the modulation table of Table 2 has a substitution pattern for limiting successive occurrences of the minimum run d. Thus, when a data pattern is (110111), a succeeding codeword string is further referred to, and when the succeeding codeword string is “010”, the data pattern is replaced with the six-piece-data pattern code pattern “001 000 000”. When the succeeding code string is other than “010”, the data pattern is converted as units of two-piece data ((11), (01), and (11)) into a code pattern, and hence converted into a codeword “*0* 010 *0*”. Thus, successive occurrences of the minimum run in a codeword string resulting from conversion of data are limited, and the minimum run is repeated six times at a maximum.
The modulation table of Table 2 has a maximum constraint length r=4. Conversion patterns with a constraint length i=4 are formed by substitution patterns (maximum run guaranteeing patterns) for realizing the maximum run k=7. Specifically, the data pattern (00001000) is converted to the code pattern “000 100 100 100”, and the data pattern (00000000) is converted to the code pattern “010 100 100 100”. Also in this case, the minimum run d=1 is kept.
Further, in Table 2, when termination is effected at an arbitrary position of a data string to insert a synchronizing pattern, and when the data string has (00) or (0000) at a terminating position, a termination pattern is used. The inserted synchronizing pattern has a first codeword as a termination pattern use identifying bit. When a termination pattern is used, the first codeword of the immediately succeeding synchronizing pattern string is “1”. When no termination pattern is used, the first codeword is “0”. Incidentally, the synchronizing pattern in Table 2 is formed by a total of 24 codewords including the above-mentioned termination pattern use identifying bit and two repetitive code patterns with k=8 exceeding the maximum run k=7 for detection of the synchronizing pattern.
The conversion patterns in Table 2 have a conversion rule that a remainder when the number of “1”s as an element of a data pattern is divided by two and a remainder when the number of “1”s as an element of a converted code pattern is divided by two be both 1 or 0 and thus equal to each other (both elements corresponding to each other have an odd number of “1”s or an even number of “1”s). For example, the data pattern (000001) of the conversion patterns corresponds to the code pattern “010 100 100”. The number of “1”s as an element of the data pattern is one, and the number of “1”s as an element of the corresponding code pattern is three. A remainder when the number of “1”s as an element of the data pattern is divided by two and a remainder when the number of “1”s as an element of the corresponding code pattern is divided by two are both one (an odd number) and thus match each other. Similarly, the data pattern (000000) of the conversion patterns corresponds to the code pattern “010 100 000”. The number of “1”s as an element of the data pattern is zero, and the number of “1”s as an element of the corresponding code pattern is two. A remainder when the number of “1”s as an element of the data pattern is divided by two and a remainder when the number of “1”s as an element of the corresponding code pattern is divided by two are both zero (an even number) and thus match each other.
A method of performing DSV control will next be described. Existing DSV control when the DSV control is not performed in a modulation table as in the RLL(1, 7) code of Table 1 is performed by adding at least (d+1) DSV control bits at predetermined intervals to a channel bit string after modulation of a data string, for example. While DSV control can be performed in a modulation table such as Table 2 in the same manner as the existing DSV control, DSV control can be performed more efficiently by utilizing relations between the data patterns and the code patterns in Table 2. Specifically, when the modulation table has the conversion rule that a remainder when the number of “1”s as an element of a data pattern is divided by two and a remainder when the number of “1”s as an element of a code pattern is divided by two be both 1 or 0 and thus the same, insertion of a DSV control bit of “1” representing “inversion” or a DSV control bit of “0” representing “non-inversion” in a channel bit string as described above is equivalent to insertion of a DSV control bit of (1) for “inversion” or a DSV control bit of (0) for “non-inversion” in a data bit string.
When a DSV control bit is inserted at the rear of a sequence of three bits (001) to be subjected to data conversion in Table 2, for example, data is (001-x) (x is one bit of “0” or “1”). When “0” is assigned to x, the following conversion is performed in the modulation table of Table 2.
Data PatternCode Pattern0010010 000
When “1” is assigned to x, the following conversion is performed in the modulation table of Table 2.
Data PatternCode Pattern0011010 100
The codeword strings are subjected to NRZI modulation, and thereby the following level code strings are generated.
Data PatternCode PatternLevel Code String0010010 0000111110011010 100011000
The last three bits of the level code strings are in inverted relation to each other. This means that DSV control can be performed also in a data string by selecting (1) and (0) as the DSV control bit x.
Considering redundancy due to DSV control, performing DSV control with one bit in a data string is equivalent to performing DSV control with 1.5 channel bits when expressed in terms of a channel bit string on the basis of the conversion ratio (m:n=2:3) of Table 2. On the other hand, to perform DSV control in an RLL(1, 7) table such as Table 1, DSV control needs to be performed in a channel bit string. At this time, at least two channel bits may be required to keep the minimum run, and redundancy is increased as compared with the DSV control of Table 2. In other words, with the table structure of Table 2, DSV control is performed in a data string, and therefore DSV control can be performed efficiently.
The modulation table of Table 2 ready for high recording densities which table has the minimum run and the maximum run (d, k)=(1, 7) as described above is employed as a format of Blu-ray Disc ReWritable ver1.0® as a high-density optical disk system, for example.
For still higher recording densities in the future, or specifically, for example, for still higher density standards for high-density optical disks, a more stable system is desired in a modulation system.
When a modulation system for implementing a more stable system with similar parameters and the configuration of a similar modulation table to those of the existing (1, 7)PP code is realized for the already commercialized Blu-ray Disc ReWritable ver1.0, existing design technology can be used, and thus a design risk at the time of hardware design can be reduced.